package config

import (
	"encoding/json"
	"github.com/syndtr/goleveldb/leveldb"
	"log"
	"os"
)

// Configuration 项目配置
type Configuration struct {
	// gtp apikey
	ApiKey         string `json:"api_key"`
	Token          string `json:"token"`
	EncodingAESKey string `json:"encoding_aes_key"`
	ReceiverId     string `json:"receiver_id"`
	CorpID         string `json:"corp_id"`
	CorpSecret     string `json:"corp_secret"`
	AgentID        int64  `json:"agent_id"`
	MaxToken       int    `json:"max_token"`
	KfSecret       string `json:"kf_secret"`
	BaseUrl        string `json:"base_url"`
}

var (
	Config *Configuration
	DB     *leveldb.DB
)

// LoadConfig 加载配置
func init() {
	// 从文件中读取
	Config = &Configuration{}
	f, err := os.Open("config.json")
	if err != nil {
		log.Fatalf("open config err: %v", err)
	}
	defer f.Close()
	encoder := json.NewDecoder(f)
	if err = encoder.Decode(Config); err != nil {
		log.Fatalf("decode config err: %v", err)
	}
	DB, err = leveldb.OpenFile("./level.db", nil)
}
